﻿Imports System.Drawing
Imports System.IO

Public Class Producto : Implements IEquatable(Of Producto)
    ' ¡¡¡Deberás conseguir que 2 productos se consideran "iguales" si les coincide el nombre!!!

    Public Property Nombre As String
    Public Property Precio As Decimal

    Private rutaFoto As String = My.Application.Info.DirectoryPath & "\Fotos"
    ''' <summary>
    ''' Foto que representa la imagen del producto
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public ReadOnly Property Foto As Image
        ' Puede ser de tipo Image y devolver directamente la imagen gracias al método Image.FromFile(nombreFicheroFoto)
        Get
            Try
                Return (Image.FromFile(rutaFoto & "\" & Nombre & ".JPG"))
            Catch ex As OutOfMemoryException
                Return Nothing
            Catch ex As Exception
                Return Nothing
            End Try
        End Get
    End Property

    'Public ReadOnly Property nomFOTO As String
    '    ' Puede ser de tipo Image y devolver directamente la imagen gracias al método Image.FromFile(nombreFicheroFoto)
    '    Get
    '        Return My.Application.Info.DirectoryPath & "" & Nombre & ".JPG"
    '    End Get
    'End Property
    ''' <summary>
    ''' Construye el producto sin datos
    ''' </summary>
    ''' <remarks></remarks>
    Public Sub New()
        Nombre = ""
        Precio = 0
    End Sub
    ''' <summary>
    ''' Construye el producto con los datos
    ''' </summary>
    ''' <param name="nombre"></param>
    ''' <param name="precio"></param>
    ''' <remarks></remarks>
    Public Sub New(ByVal nombre As String, ByVal precio As Decimal)
        Me.Nombre = nombre
        Me.Precio = precio
    End Sub

    Public Overloads Function Equals(ByVal other As Producto) As Boolean Implements System.IEquatable(Of Producto).Equals
        Return other IsNot Nothing AndAlso other.Nombre.ToLower = Me.Nombre.ToLower
    End Function

End Class
